Page({
  data: {
    // 选择小区名
    point: '',
    // 选择楼号
    building: '',
    // 选择房号
    room: '',
    // 业主姓名
    name: '',
    // 业主性别：0女 ｜ 1男
    gender: 1,
    // 业主手机号
    mobile: '',
    // 业主身份证照片正反面
    // 图片地址演示使用
    idcardFrontUrl: '',
    idcardBackUrl: '',
  },
  /**
   * 房屋模块-新增房屋
   * 1. 根据用户的定位搜索附近的小区=》选择添加房屋的小区名
   * 2. 选择添加房屋小区的楼号
   * 3. 选择房间号
   * 4. 跳转到添加房屋页面=》回显了之前选择的：小区名 + 楼号 + 房间号
   * 5. 表单校验
   * 6. 校验通过后，表单提交，跳转房屋列表页面
   */
  onLoad({ point, building, room, id }) {
    if (id) {
      // 修改=》wx.setNavigationBarTitle通过 js 方式修改页面的 title
      wx.setNavigationBarTitle({ title: '编辑房屋信息' })
      this.getEditData(id)
    } else {
      // 新增
      this.setData({ point, building, room })
    }
  },
  // 获取修改房屋的详情数据=》回显
  async getEditData(id) {
    const data = await wx.http.get(`/room/${id}`)
    console.log('修改的房屋数据：', data)
    this.setData({
      // 把 data 对象中所有属性展开，存到 data 中（覆盖）
      ...data
    })
  },
  async goList() {
    // 1. 表单校验
    const { id, point, building, room, gender, name, mobile, idcardFrontUrl, idcardBackUrl } = this.data
    if (!/^[\u4e00-\u9fa5]{2,5}$/.test(name)) return wx.utils.message('请输入中文，长度 2-5 位！')
    if (!/^[1][3-8][0-9]{9}$/.test(mobile)) return wx.utils.message('请输入正确格式的手机号！')
    if (!idcardFrontUrl || !idcardBackUrl) return wx.utils.message('请上传身份证正反面照片！')
    // 2. 表单提交
    // 组装参数
    // const data = { point, building, room, gender, name, mobile, idcardFrontUrl, idcardBackUrl }
    // if(id) {
    //   data.id = id
    // }
    await wx.http.post('/room', { id, point, building, room, gender, name, mobile, idcardFrontUrl, idcardBackUrl })
    // 新增成功后跳转房屋列表页面=》 reLaunch跳转会关闭所有页面，打开到应用内的某个页面（释放内存）
    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },
  // 上传身份证正反面
  async uploadImg(e) {
    console.log('上传照片类型(正/反)：', e.mark.type)
    // 1. 使用wx.chooseMedia拍照或选择相册图片
    const res = await wx.chooseMedia({
      count: 1, // 只能选择1张图片
      mediaType: ['image'], // 只能选择图片类型
      sizeType: ['compressed'], // 默认为压缩模式
    })
    console.log('拍照或选择的结果：', res.tempFiles[0].tempFilePath)
    // 2. 上传图片
    const img = await wx.utils.upload(res.tempFiles[0].tempFilePath)
    console.log('上传结果：', img.data.url)
    this.setData({
      // e.mark.type: idcardFrontUrl | idcardBackUrl
      [e.mark.type]: img.data.url
    })
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark.type
    this.setData({ [type]: '' })
  },
})
